/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia.controller;

import bean.BuscaChaveEstrangeira;
import bean.Fornecedor;
import groovy.lang.GroovyClassLoader;
import java.io.File;
import java.util.Vector;

/**
 *
 * @author André
 */
public class FornecedorController implements IFornecedorController {

    private static FornecedorController instance;
    private IFornecedorController mgr;

    public static FornecedorController getInstance() {
        if (instance == null) {
            instance = new FornecedorController();
        }
        return instance;
    }

    private FornecedorController() {
        try {
            GroovyClassLoader groovyClassLoader = new GroovyClassLoader();
            Class classeProxy = groovyClassLoader.parseClass(
                    //new File("./src/java/persistencia/controller/FornecedorController.groovy"));
                    new File("D:/UEFS/Implementação TCC/codigos/FornecedorWS/src/java/persistencia/controller/FornecedorController.groovy"));
            mgr = (IFornecedorController) classeProxy.newInstance();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

    public boolean createFornecedor(Fornecedor fornecedor) {
        return mgr.createFornecedor(fornecedor);
    }

    public Vector<Fornecedor> readFornecedor(String nomeFantasia) {
        return mgr.readFornecedor(nomeFantasia);
    }

    public Fornecedor readFornecedorPorId(Integer codigoFornecedor) {
        return mgr.readFornecedorPorId(codigoFornecedor);
    }

    public boolean updateFornecedor(Fornecedor fornecedor) {
        return mgr.updateFornecedor(fornecedor);
    }

    public boolean deleteFornecedor(Integer codigoFornecedor) {
        return mgr.deleteFornecedor(codigoFornecedor);
    }

    public Vector<BuscaChaveEstrangeira> searchClassificacaoPorId(String sigla) {
        return mgr.searchClassificacaoPorId(sigla);
    }

    public Vector<BuscaChaveEstrangeira> searchClassificacaoPorNome(String descricao) {
        return mgr.searchClassificacaoPorNome(descricao);
    }

    public Vector<BuscaChaveEstrangeira> searchCidadePorId(String cep) {
        return mgr.searchCidadePorId(cep);
    }

    public Vector<BuscaChaveEstrangeira> searchCidadePorNome(String nome) {
        return mgr.searchCidadePorNome(nome);
    }
}
